

import threading
import time

num = 0
def run(n):
    lock.acquire()    #获取一把锁
    global num
    num += 1
    lock.release()   #释放锁

lock = threading.Lock()   #实例化一把线程锁 3.0以后不用加锁了就


#使用循环启动多个线程,所有线程启动后，等待所有线程结束，打印结果
t_objs = []
for i in range(50):
    t = threading.Thread(target=run, args=('t-%s' % i,))
    t.start()
    t_objs.append(t)    #为了不阻塞后面线程启动，不在这里join，先放到一个列表里面
    print(t_objs)

for t in t_objs:    #循环线程实例列表，等待所有线程执行完毕
    t.join()


print(num)
